home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / tex-k / fontname-1.6.tar.gz / fontname-1.6.tar / fontname-1.6 / fontname.info (.txt) < prev    next >
GNU Info File  |  1994-03-30  |  33KB  |  940 lines

  1. This is Info file fontname.info, produced by Makeinfo-1.55 from the
  2. input file fontname.texi.
  3. File: fontname.info,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)
  4. Filenames for TeX fonts
  5. ***********************
  6.   This document describes a scheme for making eight-character filenames
  7. from (almost) arbitrarily complex font names.  It points out
  8. shortcomings of this approach, as well as strengths.  Many examples of
  9. the approach are given as well as complete tables of all "registered"
  10. (i.e., sent to me, `karl@cs.umb.edu') names.
  11.   This is version 1.6.
  12. * Menu:
  13. * Introduction::                Rationale and basic information about fonts.
  14. * Naming scheme::               The construction of font names.
  15. * Examples::                    Various real-life examples.
  16. * Long names::            A specification for long filenames.
  17. File: fontname.info,  Node: Introduction,  Next: Naming scheme,  Prev: Top,  Up: Top
  18. Introduction
  19. ************
  20.   As more typeface families become available for use with TeX, the need
  21. for a consistent, rational naming scheme for the font filenames
  22. concomitantly grows.  What follows is somewhat related to and a
  23. simplification of Mittelbach's and Schoepf's article in `TUGboat',
  24. volume 11, number 2 (June 1990).  The document you are now reading is an
  25. update of my article published in `TUGboat' 11(4) (November 1990),
  26. pages 512-519.  Finally, Mittelbach wrote another article criticizing
  27. the scheme below in `TUGboat' 13(1) (April 1992), pages 51-53; most of
  28. his points are well-taken, but I saw no alternative then, and see no
  29. alternative now.  Other of his points are addressed in the appropriate
  30. sections below.
  31.   Here are some relevant facts about fonts:
  32.    * TeX runs on virtually all computers, under almost as many operating
  33.      systems, all with their own (usually incompatible) ideas of how
  34.      files should be named.  Any proposal regarding filenames,
  35.      therefore, must cater to the lowest common denominator.  As far as
  36.      I know, this is eight characters in length (since the SAIL
  37.      machines on which Knuth developed TeX have been unplugged), not
  38.      counting any extension, without regard to case, and using only
  39.      letters and numerals.
  40.    * Most typefaces are offered by several vendors.  The version
  41.      offered by one vendor is not compatible with that of another.  In
  42.      fact, the names are usually not the same (a deplorable practice
  43.      due to the lack of typeface protection in all countries (at this
  44.      writing, and to my knowledge) except Germany, England, and (in a
  45.      few cases) France).
  46.    * Typefaces typically come in different weights (hairline to extra
  47.      heavy), different widths (ultra condensed to wide), and an
  48.      open-ended range of variants (italic, sans serif, typewriter,
  49.      shadow, ....  No accepted standards exist for what any of these
  50.      qualities actually, nor (in my opinion) are any standards ever
  51.      likely to gain acceptance.  (Although work on an international
  52.      font standard is progressing, the end is not in sight.)
  53.    * The Computer Modern typeface family preserves traditional
  54.      typesetting practice in at least one important respect: different
  55.      sizes of the same font are not simply linear scalings.  This is in
  56.      contrast to most commercial (e.g., PostScript) fonts available.
  57.   I know that these tables are incomplete.  Please send me, by
  58. electronic mail to `karl@cs.umb.edu', any additions or corrections, as
  59. well as any other comments you may have.  There is also a (low-volume)
  60. mailing list concerned with fonts and TeX in general (this scheme was
  61. developed after discussions on that list, in fact):
  62. `tex-fonts@math.utah.edu'.
  63.   Many people have contributed to this proposal.  I would like to
  64. acknowledge in particular Barbara Beeton, Rocky Bernstein, Berthold K.P.
  65. Horn, Sebastian Rahtz, and Jean Rivlin.  Tom Rokicki and Russell Lang
  66. gave it its first real test when they adapted it to Tom's
  67. DVI-to-PostScript translator, dvips.
  68. File: fontname.info,  Node: Naming scheme,  Next: Examples,  Prev: Introduction,  Up: Top
  69. The naming scheme
  70. *****************
  71.   Here is how I propose to divide up the eight characters (the spaces
  72. between the parts are only for readability, and of course should not be
  73. in the filename!):
  74.       S TT W V E DD
  75. where
  76.    * `S' represents the source of the font, and is omitted if the
  77.      source is unknown or irrelevant.
  78.    * `TT' represents the typeface name.
  79.    * `W' represents the weight.
  80.    * `V' represents the variant, and is omitted if both it and the
  81.      width are "normal".  Many fonts have more than one variant.
  82.    * `E' represents the width ("expansion"), and is omitted if it is
  83.      "normal".
  84.    * `DD' represents the design size, and is omitted if the font is
  85.      linearly scaled from a single TFM file.
  86.   See the section on virtual fonts (towards the end) for an exception to
  87. the above.
  88.   The weight, variant, and width are probably all best taken from the
  89. original source of the typeface, instead of trying to relate them to
  90. some external standard.
  91.   Before giving the lists of abbreviations, let me point out some
  92. problems.  I don't know of a good solution for any of them.  Please let
  93. me know if you have ideas about any of them.
  94.   1. Assuming that only the English letters are used, two letters is
  95.      enough for only 676 typeface families (even assuming we want to
  96.      use all possible combinations, which is doubtful).  There are many
  97.      more than 676 typeface families in the world.  This problem has
  98.      already arisen in practice--the abbreviations for typeface
  99.      families that start with the letter `s', for example, break down
  100.      after a while: I had to call Simoncini Garamond (which should be
  101.      `sg' on the face of it) `ig'.
  102.   2. Fonts with design sizes larger than 100 point do exist.
  103.      Mittelbach in TUGboat 13(1) proposes using hexadecimal or base-36
  104.      notation.  I don't think the increased range makes up for the
  105.      unreadability of the common sizes (e.g., 10pt fonts would have a
  106.      suffix `a' (in hex), or `j' (in base 36)).  In practice, no one
  107.      has complained to me that they can't name their 128pt Helvetica.
  108.   3. Several of the "variants" below are not type styles (specifically,
  109.      `expert' and `alternate'); instead, they are different encoding
  110.      schemes.  The encoding scheme should be specified separately, but
  111.      there are no more letters.
  112.   4. Another dimension along which typefaces can vary is the script.
  113.      Many typeface families include variants for Greek, or Cyrillic, or
  114.      what have you.  Again, this should be specified independently of
  115.      everything else, but there are no more letters.  For now, Greek
  116.      can be specified as a variant letter `k'.
  117.   5. It is common to have multiple variants.  This quickly makes the
  118.      font names longer than eight letters.  For example, Adobe sells a
  119.      font named `Minion-SwashDisplayItalic', which translates to the
  120.      name `pmnrwdi', seven letters long.  If Adobe did proper design
  121.      sizing, the name would be nine letters long already--and the font
  122.      isn't even bold!
  123.   6. Multiple variants also lead to ambiguous names, in two different
  124.      ways.
  125.      First, the same font can be given different names, by specifying
  126.      the variants in different orders.  For example, the
  127.      `Minion-SwashDisplayItalic' font mentioned above could also be
  128.      specified as `pmnrdiw'.  This can be alleviated by always giving
  129.      the variant abbreviations in alphabetical order.
  130.      Second, two fonts can be given the same name.  For example,
  131.      `fcmrtc' could be either Computer Modern typewriter condensed or
  132.      Computer Modern typewriter small caps.  This problem can be
  133.      alleviated by adding `r' (or possibly `rr', in pathological cases)
  134.      to the end, meaning "normal width.  But that will make the name
  135.      too long in many cases, and always specifies what should be
  136.      redundant information.
  137.      Ideally, the various parts of the name would be separated by
  138.      something other than the empty string.
  139.   If you adopt this proposal at your installation, and find that you
  140. have fonts with some property I missed, please write to me (see the end
  141. of the article for various addresses), so I can update the lists.  You
  142. can get the most up-to-date version of these lists electronically, by
  143. anonymous ftp from the host `ftp.cs.umb.edu', in the directory
  144. `pub/tex/fontname'.  I will also send them to you by electronic mail,
  145. if necessary.
  146.   Graham Asher (`gasher@cursci.co.uk') has written a C routine to
  147. demangle these fontnames.  See `fnget.h' and `fnget.c' in this
  148. distribution.
  149.   I give the letters in lowercase, which I think should be used on
  150. systems where case is significant.  The lists are in alphabetical order
  151. by the abbreviation.
  152. * Menu:
  153. * Sources::
  154. * Typeface families::
  155. * Weight::
  156. * Variant::
  157. * Width::
  158. * Naming virtual fonts::
  159. File: fontname.info,  Node: Sources,  Next: Typeface families,  Up: Naming scheme
  160. Sources
  161. =======
  162.   You should use the letter here which matches the vendor you obtained
  163. the font from.  This doesn't necessarily mean that vendor is the
  164. original source; for example, Avant Garde was designed by Herb Lubalin
  165. for ITC, but Adobe also sells it.  The name of the font that you get
  166. from Adobe should start with `p'.
  167.      unknown
  168.      Autologic
  169.      Bitstream
  170.      Compugraphic
  171.      Digital Typeface Corporation (DTC)
  172.      freely distributable (e.g., public domain)
  173.      Free Software Foundation (`g' for GNU)
  174.      Bigelow & Holmes
  175.      ITC (International Typeface Corporation)
  176.      Linotype
  177.      Monotype
  178.      IBM
  179.      Adobe (`p' for PostScript)
  180.      `raw' (for [obsolete] use with virtual fonts, *note Naming virtual
  181.      fonts::.)
  182.      Sun
  183.      URW
  184.      American Mathematical Society (`x' for math)
  185.      Y&Y
  186.      bizarre
  187.   Fonts that are distributed without any real attribution to the creator
  188. or by individuals who don't plan to start their own digital type
  189. foundries (Computer Modern, for example) can use `f'.  People sometimes
  190. create their own personal fonts, not intended for distribution; for
  191. those, it doesn't make any difference what the name is.
  192.   It's unfortunate that the "bizarre" source `z' is needed; but some
  193. fonts just don't fit well into the naming scheme.  Such fonts should be
  194. prefixed by `z' (in addition to the real source).
  195.   The source `r' is also unfortunate; it would be better to simply
  196. specify the encoding of the font, or whatever the virtual font changed
  197. or added, eliminating the rather artificial distinction between "raw"
  198. and "virtual" fonts.
  199. File: fontname.info,  Node: Typeface families,  Next: Weight,  Prev: Sources,  Up: Naming scheme
  200. Typeface families
  201. =================
  202.      Amasis
  203.      Aachen
  204.      Arnold Boecklin
  205.      Adobe Caslon
  206.      Adobe Garamond
  207.      Avant Garde
  208.      Ashley Script
  209.      Abadi
  210.      Albertus
  211.      Americana
  212.      Antique Olive
  213.      Apollo
  214.      Antiqua
  215.      Arcadia
  216.      Aldus
  217.      American Typewriter
  218.      Auriol
  219.      Avenir
  220.      Akzidenz Grotesque
  221.      Blackoak
  222.      Blado
  223.      BinnyOldStyle
  224.      Braggadocio
  225.      Bembo
  226.      Banco
  227.      Bodoni
  228.      Bell
  229.      Biffo
  230.      Benguiat
  231.      Bauhaus
  232.      Birch
  233.      Bookman
  234.      Belwe
  235.      Bernard
  236.      Balloon
  237.      Bundesbahn Pi
  238.      Berling
  239.      BakerSignet
  240.      Brush
  241.      Baskerville
  242.      Broadway
  243.      Berkeley
  244.      Carolina
  245.      Calisto
  246.      Caslon 224
  247.      Caslon 3
  248.      Caslon 540
  249.      Clarion
  250.      Compacta
  251.      Calvert
  252.      Caslon
  253.      Cooper Black
  254.      Cascade
  255.      Clarendon
  256.      Centennial
  257.      Clearface
  258.      Charlemagne
  259.      Charter
  260.      Candida
  261.      Cloister
  262.      Computer Modern
  263.      Century
  264.      Cochin
  265.      Copperplate
  266.      Cheq
  267.      Courier
  268.      Century Schoolbook
  269.      Cheltenham
  270.      Century Old Style
  271.      Clairvaux
  272.      Cottonwood
  273.      Caxton
  274.      City
  275.      Dom Casual
  276.      Duc de Berry
  277.      Dolores
  278.      Doric
  279.      Dorchester Script
  280.      Egyptian Extended
  281.      EgyptienneF
  282.      Stempel Garamond
  283.      Engschrift
  284.      Esprit
  285.      Ellington
  286.      Engravers
  287.      Amerigo
  288.      European Pi
  289.      Eras
  290.      Eurostile
  291.      Ehrhardt
  292.      Euler
  293.      Excelsior
  294.      Formata
  295.      Forte
  296.      Fairfield
  297.      Franklin Gothic
  298.      Flora
  299.      Fenice
  300.      Folio
  301.      Friz Quadrata
  302.      Frutiger
  303.      Falstaff
  304.      Figaro
  305.      Fette Fraktur
  306.      Futura
  307.      Felix Titling
  308.      Flyer
  309.      Gothic Thirteen
  310.      Garamond No. 3
  311.      Goudy Modern
  312.      Goudy Catalogue
  313.      Gothic BBB
  314.      Garth Graphic
  315.      Granjon
  316.      Galliard
  317.      Garamond
  318.      Goudy Old Style
  319.      Glypha
  320.      Grotesque
  321.      Gloucester
  322.      Gill Sans
  323.      Goudy Text
  324.      Guardi
  325.      Giovanni
  326.      Goudy
  327.      Hobo
  328.      Herculanum
  329.      Headline
  330.      Hiroshige
  331.      Helvetica Inserat
  332.      Charme
  333.      Helvetica Neue
  334.      Horley Old Style
  335.      Helvetica Rounded
  336.      Helvetica
  337.      Insignia
  338.      Impact
  339.      Inflex
  340.      Simoncini Garamond
  341.      Imprint
  342.      Caecilia
  343.      Imago
  344.      Industria
  345.      ionic
  346.      Impressum
  347.      Italian Old Style
  348.      Italia
  349.      Ironwood
  350.      Janson
  351.      Joanna
  352.      Juniper
  353.      Kabel
  354.      Klang
  355.      Korinna
  356.      Kuenstler Script
  357.      Kaufmann
  358.      Lubalin Graph
  359.      Lucida
  360.      Life
  361.      Letter Gothic
  362.      Latin
  363.      Lino
  364.      Lithos
  365.      Mittelshrift
  366.      Lutetia
  367.      Leawood
  368.      Monospace
  369.      Monoline Script
  370.      Meridien
  371.      Mercurius Script
  372.      Marigold
  373.      Machine
  374.      Medici
  375.      Melior
  376.      Minion
  377.      Modern
  378.      Memphis
  379.      Mesquite
  380.      Madrone
  381.      Mistral
  382.      Minister
  383.      Malvern
  384.      Maximus
  385.      New Aster
  386.      New Baskerville
  387.      New Century Schoolbook
  388.      New Caledonia
  389.      Nofret
  390.      News Gothic
  391.      Nimrod
  392.      Neographik
  393.      Nimbus
  394.      New Clarendon
  395.      News Plantin
  396.      New Berolina
  397.      Times New Roman
  398.      Nuptial
  399.      Novarese
  400.      Neuzeit S
  401.      Old Style 7
  402.      OCR-A
  403.      OCR-B
  404.      Concorde
  405.      Old English
  406.      Omnia
  407.      Corona
  408.      Optima
  409.      Orator
  410.      Old Style
  411.      Coronet
  412.      Octavian
  413.      Onyx
  414.      Olympian
  415.      Poplar
  416.      Palace Script
  417.      Pepita
  418.      Park Avenue
  419.      Placard
  420.      Prestige Elite
  421.      Peignot
  422.      Photina
  423.      Palatino
  424.      Plantin
  425.      Ponderosa
  426.      Perpetua
  427.      Post Antiqua
  428.      Parisian
  429.      Present
  430.      Poppl Pontifex
  431.      Poliphilus
  432.      Quorum
  433.      Raleigh
  434.      Rotis
  435.      Reporter
  436.      Russell Square
  437.      Carta
  438.      Runic
  439.      Revue
  440.      Rockwell
  441.      Ryumin
  442.      San Marco
  443.      Scotch Roman
  444.      Script
  445.      Sabon
  446.      Slimbach
  447.      Serifa
  448.      Serif Gothic
  449.      Shannon
  450.      Stencil
  451.      Spectrum
  452.      Spartan
  453.      Sonata
  454.      Serpentine
  455.      Snell Roundhand
  456.      Stempel Schneidler
  457.      Stone
  458.      Souvenir
  459.      Swing
  460.      Syntax
  461.      Symbol
  462.      Berthold Bodoni
  463.      Times Europa
  464.      Tiffany
  465.      Trade Gothic
  466.      Tech Phonetic
  467.      Trajan
  468.      Tektok
  469.      Castellar
  470.      Times
  471.      Tempo
  472.      Trump Mediaeval
  473.      Twentieth Century
  474.      Typewriter
  475.      Bauer Bodoni
  476.      Benguiat Gothic
  477.      Cushing
  478.      Universal
  479.      Umbra
  480.      Univers
  481.      Centaur
  482.      Utopia
  483.      Usherwood
  484.      University
  485.      Activa
  486.      Vectora
  487.      Van Dijck
  488.      Veljovic
  489.      Versailles
  490.      VAG Rounded
  491.      Walbaum
  492.      Weidemann
  493.      WilhelmKlingsporGotisch
  494.      Wingdings
  495.      Wilke
  496.      Wood
  497.      Weiss
  498.      Willow
  499.      Stymie
  500.      ZAntiqua
  501.      Zapf Chancery
  502.      Zapf Dingbats
  503.      Neuzeit Grotesk
  504.      Zeitgeist
  505. * Menu:
  506. * Aliases::
  507. File: fontname.info,  Node: Aliases,  Up: Typeface families
  508. Aliases
  509. -------
  510.   In the introduction, I alluded to the fact that the same typeface
  511. design is often (in fact, usually) offered under different names by
  512. different vendors.  This is because typeface *names* can be protected
  513. in many countries, including the United States, via trademarks.  But
  514. typeface *designs* can be easily protected in only a few countries.
  515. (Incidentally, who the trademark belongs to doesn't necessarily have
  516. anything to do with who actually did the original design; in the case of
  517. Helvetica, it was the Swiss letterform designer Max Miedinger for, I
  518. believe, the Haas foundry.)
  519.   For an excellent article (still mostly up-to-date) on typeface
  520. protection, see `Notes on typeface protection' by Charles Bigelow in
  521. `TUGboat' volume 7, number 3 (October 1986).  I have tried to summarize
  522. that article, and events since then, in the `Legal issues' section of
  523. the GNU fontutils manual.
  524.   This all leads to massive confusion for a typeface buyer, who knows
  525. what, say, Helvetica (a trademark of Allied Corporation) looks
  526. like--but probably doesn't know, or care, that Monotype's marketing
  527. department called one of their versions of Helvetica `Arial'.  Rather
  528. than perpetuate this confusion, I believe it will be better to use the
  529. same name for the same design, in contrast to always using the vendor's
  530. name.  (For one thing, this will help in conserving the number of
  531. typeface families, which, given the limited number of letters, is a
  532. desirable goal.)
  533.   In order to help users who may only know their vendor's name, and not
  534. the original name, I am maintaining the following table of typeface name
  535. aliases, organized alphabetically by typeface name.
  536.   The vendor who perpetrated the alias is given in parentheses, where
  537. known.
  538. Arial
  539.      (Monotype) Helvetica
  540. Dutch
  541.      (Bitstream) Times
  542. Exotic
  543.      (Bitstream) Peignot
  544. Hammersmith
  545.      (Bitstream) Gill Sans
  546. ISIL Gothic
  547.      Letter Gothic
  548. Newton
  549.      Helvetica
  550. Omega
  551.      (LaserJet) Optima
  552. Optimum
  553.      (DTC) Optima
  554. Palton
  555.      (DTC) Palatino
  556.      (DTC) Helvetica
  557. Slate
  558.      (Bitstream) Rockwell
  559. Sonoran Serif
  560.      (IBM) New Times Roman
  561. Sonoran Sans Serif
  562.      (IBM) Helvetica
  563. Swiss
  564.      (Bitstream) Helvetica
  565. Tramp
  566.      Hobo
  567. Zapf Calligraphic
  568.      (Bitstream) Palatino
  569. Zapf Elliptical
  570.      (Bitstream) Melior
  571. Zapf Humanist
  572.      (Bitstream) Optima
  573. Zurich
  574.      (Bitstream) Univers
  575. File: fontname.info,  Node: Weight,  Next: Variant,  Prev: Typeface families,  Up: Naming scheme
  576. Weight
  577. ======
  578.      hairline, thin
  579.      bold
  580.      black
  581.      demibold
  582.      heavy
  583.      extra light
  584.      book
  585.      light
  586.      medium
  587.      poster
  588.      regular
  589.      semibold
  590.      ultra
  591.      extra bold
  592.   In order of lightest to heaviest (more or less):
  593.      hairline, extra light, light,
  594.      book, regular, medium,
  595.      demibold, semibold, bold, extra bold, heavy
  596.      black, ultra, poster
  597. File: fontname.info,  Node: Variant,  Next: Width,  Prev: Weight,  Up: Naming scheme
  598. Variant
  599. =======
  600.   Unfortunately, "variants" include scripts (Greek, Cyrillic) and font
  601. encodings (Adobe standard, alternate, expert), as well as true typeface
  602. variations (italic, typewriter).
  603.   Mittelbach in TUGboat 13(1) suggests that `typewriter' and `sans'
  604. should be identified as part of the typeface name, because there are few
  605. typeface families with these variants.  I feel the typeface namespace is
  606. already too cluttered, and that logically they are variants.
  607.      Adobe standard encoding
  608.      semi sans
  609.      encoding with changed characters only, e.g., Adobe's `Dfr'
  610.      fractions
  611.      fax
  612.      phonetic (IPA)
  613.      semi serif
  614.      *escape*, see below
  615.      oldstyle digits
  616.      Adobe alternate encoding, alternate characters only
  617.      bright
  618.      small caps
  619.      display, titling, caption
  620.      engraved, copperplate
  621.      Fraktur, gothic, blackletter
  622.      grooved (as in the IBM logo)
  623.      shadow
  624.      text italic, kursiv
  625.      invisible
  626.      Greek
  627.      outline, open face
  628.      math italic
  629.      informal
  630.      oblique (i.e., slanted)
  631.      ornament
  632.      TeX extended (Cork, DC) encoding
  633.      normal (roman or sans)
  634.      sans serif
  635.      typewriter
  636.      unslanted italic
  637.      math extension
  638.      script, handwritten, swash
  639.      Adobe expert encoding
  640.      symbol
  641.      Cyrillic
  642.   If the variant is `r', and the width is also normal, both the variant
  643. and the width are omitted.  When the normal version of the typeface is
  644. sans serif (e.g., Helvetica), `r' should be used, not `s'.  Use `s'
  645. only when the typeface family has both serif and sans serif variants.
  646.   The variant `8' is marked "escape": this means the next character is
  647. also to be taken as a variant letter (and gives us another 36
  648. characters). Here is the table for the escaped variants:
  649.      ISO Latin 1 (8859/1) encoding
  650.      ISO Latin 2 (8859/2) encoding
  651.      ISO Latin 5 (8859/5) encoding
  652.      Macintosh standard encoding
  653.      Windows ANSI encoding (from Appendix C of the Adobe PDF manual and
  654.      the back of the Windows manual)
  655. File: fontname.info,  Node: Width,  Next: Naming virtual fonts,  Prev: Variant,  Up: Naming scheme
  656. Width
  657. =====
  658.      condensed (by hand)
  659.      expanded (automatic)
  660.      narrow (automatic)
  661.      ultra condensed
  662.      compressed
  663.      extra compressed, extra condensed
  664.      regular, normal, medium (usually omitted)
  665.      thin
  666.      ultra compressed
  667.      wide
  668.      extended (by hand)
  669.   In order of narrowest to widest (more or less):
  670.      ultra compressed, extra condensed, compressed, condensed, narrow
  671.      regular, extended, expanded, wide
  672.   Expansion or compression of fonts is sometimes done automatically (as
  673. by the PostScript `scale' operator), and sometimes done by humans.  I
  674. chose `narrow' and `expanded' to imply the former, and `condensed' and
  675. `extended' to imply the latter, as I believe this reflects the most
  676. common usage.  (Of course there is no general consensus.)
  677. File: fontname.info,  Node: Naming virtual fonts,  Prev: Width,  Up: Naming scheme
  678. Naming virtual fonts
  679. ====================
  680.   In concert with releasing TeX version 3.0 and Metafont version 2.7,
  681. Don Knuth wrote two new utility programs: VFtoVP and VPtoVF, which
  682. convert to and from "virtual" fonts.  Virtual fonts provide a general
  683. interface between the writers of TeX macros and font suppliers.  In
  684. general, therefore, it is impossible to come up with a general scheme
  685. for naming virtual fonts, since each virtual font is an individual
  686. creation, possibly bringing together many unrelated fonts.
  687.   Nevertheless, one common case is to use virtual fonts to map plain
  688. TeX's accent and other character code conventions onto a
  689. vendor-supplied font.  For example, the DVI-to-PostScript translator
  690. Dvips (written by Tom Rokicki) does this for fonts given in the
  691. PostScript "standard encoding".  In this case, each font consists of a
  692. "virtual" tfm file, which is what TeX uses, a "raw" tfm file, which
  693. corresponds to the actual device font, and a vf file, which describes
  694. the relationship between the two.
  695.   This adds another dimension to the font namespace, namely,
  696. "virtualness" (or rather, "rawness", since it is the virtual tfm files
  697. that the users want to see, and thus the one that should have the
  698. "normal" name, as given by the tables above).  But we have already used
  699. up all eight characters in the font names (more, in fact).
  700.   The first solution, adopted in dvips, was this: prepend `r' to the
  701. raw tfm files; the virtual tfm files should be named with the usual
  702. source prefix.  For example, Adobe's virtual Times Roman tfm file is
  703. named `ptmr', as usual; the raw Times Roman tfm file is named `rptmr'.
  704. To prevent intolerable confusion, I promise never to give a foundry the
  705. letter `r'.
  706.   But now, years after, I think there is a better solution: ignore the
  707. virtual/raw distinction in favor of the font encoding or other
  708. distinguishing characteristics.  For example, the raw Times Roman font,
  709. using Adobe's encoding, could be named `ptmr0'; the virtual font, with
  710. the ersatz CM encoding, would be just `ptmr'.
  711. File: fontname.info,  Node: Examples,  Next: Long names,  Prev: Naming scheme,  Up: Top
  712. Examples
  713. ********
  714.   This chapter gives two examples.  Other examples (including the
  715. entire Adobe font catalog as of early 1991) are available by ftp or
  716. email (*note Introduction::.).
  717. * Menu:
  718. * Univers::
  719. * Standard PostScript fonts::
  720. File: fontname.info,  Node: Univers,  Next: Standard PostScript fonts,  Up: Examples
  721. Univers
  722. =======
  723.   The fonts in the Univers typeface family were assigned numbers by its
  724. designer, Adrien Frutiger.  (You can see the scheme on, for example,
  725. page 29 of `The Art of Typo.icon.ography', by Martin Solomon.)
  726.   The names given here have to be prefixed with a source letter to
  727. actually be usable.  Since my purpose here was just to demonstrate the
  728. correspondence between typeface variations and the naming scheme, I left
  729. the source out.
  730. 45 (light)
  731.      `unl'
  732. 46 (light italic)
  733.      `unli'
  734. 47 (light condensed)
  735.      `unlrc'
  736. 48 (light condensed italic)
  737.      `unlic'
  738. 49 (light extra condensed)
  739.      `unlro'
  740. 53 (medium extended)
  741.      `unmrx'
  742. 55 (medium)
  743.      `unm'
  744. 56 (medium italic)
  745.      `unmi'
  746. 57 (medium condensed)
  747.      `unmrc'
  748. 58 (medium condensed italic)
  749.      `unmic'
  750. 59 (medium extra condensed)
  751.      `unmro'
  752. 63 (demibold extended)
  753.      `undrx'
  754. 65 (demibold)
  755.      `und'
  756. 66 (demibold italic)
  757.      `undi'
  758. 67 (demibold condensed)
  759.      `undrc'
  760. 68 (demibold condensed italic)
  761.      `undic'
  762. 73 (bold extended)
  763.      `unbrx'
  764. 75 (bold)
  765.      `unb'
  766. 76 (bold italic)
  767.      `unbi'
  768. 83 (extra bold extended)
  769.      `unxrx'
  770. File: fontname.info,  Node: Standard PostScript fonts,  Prev: Univers,  Up: Examples
  771. Standard PostScript fonts
  772. =========================
  773.   Here are names for the 35 standard PostScript fonts:
  774. `AvantGarde-Book'
  775.      `pagk'
  776. `AvantGarde-BookOblique'
  777.      `pagko'
  778. `AvantGarde-Demi'
  779.      `pagd'
  780. `AvantGarde-DemiOblique'
  781.      `pagdo'
  782. `Bookman-Demi'
  783.      `pbkd'
  784. `Bookman-DemiItalic'
  785.      `pbkdi'
  786. `Bookman-Light'
  787.      `pbkl'
  788. `Bookman-LightItalic'
  789.      `pbkli'
  790. `Courier-Bold'
  791.      `pcrb'
  792. `Courier-BoldOblique'
  793.      `pcrbo'
  794. `Courier'
  795.      `pcrr'
  796. `Courier-Oblique'
  797.      `pcrro'
  798. `Helvetica-Bold'
  799.      `phvb'
  800. `Helvetica-BoldOblique'
  801.      `phvbo'
  802. `Helvetica-NarrowBold'
  803.      `phvbrn'
  804. `Helvetica-NarrowBoldOblique'
  805.      `phvbon'
  806. `Helvetica'
  807.      `phvr'
  808. `Helvetica-Oblique'
  809.      `phvro'
  810. `Helvetica-Narrow'
  811.      `phvrrn'
  812. `Helvetica-NarrowOblique'
  813.      `phvron'
  814. `NewCenturySchlbk-Bold'
  815.      `pncb'
  816. `NewCenturySchlbk-BoldItalic'
  817.      `pncbi'
  818. `NewCenturySchlbk-Italic'
  819.      `pncri'
  820. `NewCenturySchlbk-Roman'
  821.      `pncr'
  822. `Palatino-Bold'
  823.      `pplb'
  824. `Palatino-BoldItalic'
  825.      `pplbi'
  826. `Palatino-Italic'
  827.      `pplri'
  828. `Palatino-Roman'
  829.      `pplr'
  830. `Symbol'
  831.      `psyr'
  832. `Times-Bold'
  833.      `ptmb'
  834. `Times-BoldItalic'
  835.      `ptmbi'
  836. `Times-Italic'
  837.      `ptmri'
  838. `Times-Roman'
  839.      `ptmr'
  840. `ZapfChancery-MediumItalic'
  841.      `pzcmi'
  842. `ZapfDingbats'
  843.      `pzdr'
  844. File: fontname.info,  Node: Long names,  Prev: Examples,  Up: Top
  845. Long names
  846. **********
  847.   As pointed out earlier, eight characters is not enough to
  848. unambiguously represent all fonts.  To do that, we have to allow
  849. ourselves very long filenames.  Right now, such a scheme could only be
  850. implemented on a few kinds of systems.  But with a simple change to
  851. TeX, it could be used on all systems.
  852. * Menu:
  853. * Name mapping file::        Aliases for fonts.
  854. * Long naming scheme::        A way to use more than 8 alphanumerics.
  855. File: fontname.info,  Node: Name mapping file,  Next: Long naming scheme,  Up: Long names
  856. A fontname mapping file
  857. =======================
  858.   At the moment, most implementations of TeX look up a TFM file (as
  859. part of the `\font' command), by searching for a file with the name
  860. given by the user (possibly in any of series of directories).  But if it
  861. looks the name up first in *another* file, which specifies the actual
  862. filename, the fontname given in the TeX source could be almost anything
  863. at all, of any length.
  864.   In version 5.851d of Web2C, I implemented this mapping file.  It has
  865. an straightforward format: each line specifies the filename and the TeX
  866. name for one font, separated by whitespace.  Extra information on the
  867. line is ignored; then more information could be specified for the
  868. benefit of DVI-reading programs in the same file.  Comments start with
  869. `%' and continue to the end of the line, as usual.
  870.   Besides allowing long names, the mapping file could have additional
  871. advantages.  The TeX source files could become more nearly
  872. system-independent, because the same font names could work on every
  873. system.  Also, when combined with a consistent naming scheme, macros
  874. could be written to access any of a number of fonts.  Right now, each
  875. font family has to have specialized macros written to deal with it.
  876.   Incidentally, Professor Knuth has approved this change as a legitimate
  877. "system-dependent" adaptation; a TeX with such a feature can still be
  878. called "TeX".
  879. File: fontname.info,  Node: Long naming scheme,  Prev: Name mapping file,  Up: Long names
  880. A naming scheme for long names
  881. ==============================
  882.   Once we allow ourselves long names, we can construct a naming scheme
  883. to handle arbitrary fonts without much difficulty.  Here is one
  884. proposal:
  885.      SOURCE-FAMILY-WEIGHT-VARIANTS-
  886.      WIDTH-ENCODING--SIZE
  887.   The SOURCE is the usual `Adobe' or AUTOLOGIC or whatever, as well as
  888. `unknown', `pd', or `weird'--this last meaning the rest of the name is
  889. nonstandard.  If the SOURCE is missing, i.e., the name starts with a
  890. `-', "public domain" is assumed.  For fonts made by individuals, the
  891. initials of the designer are probably a good SOURCE.
  892.   The FAMILY is `ComputerModern' or `Times' or whatever.
  893.   Everything else is optional.  The `--' before the SIZE lets one
  894. specify a name with, say, a weight and variants, but then skip the
  895. WIDTH and ENCODING, but still be able to give a size.
  896.   The WEIGHT and WIDTH are as described earlier.
  897.   If there is more than one variant, they are separated with some
  898. character other than `-', say `=':
  899.      BigelowHolmes-Lucida-Bold-Sans=Typewriter--10
  900.   The ENCODING is what Metafont calls the `font_coding_scheme'--the
  901. layout of the characters in the font.  For example, `TeXExtended' or
  902. `ISOLatin1' or `AdobeAlternate'.  Perhaps this should be mandatory, as
  903. a font is useless if you do not know its encoding.
  904.   Names are case-sensitive, for consistency with the rest of TeX and
  905. with PostScript, etc.  Spaces cannot be used in the name, to make it
  906. easier for TeX to parse.  Likewise, characters with default category
  907. codes other than letter or other should not be used.
  908.   Another possibility is to forget all the above, and simply use the
  909. vendor's name (perhaps prefixed by the vendor): `Adobe-Times-Roman',
  910. Tag Table:
  911. Node: Top
  912. Node: Introduction
  913. Node: Naming scheme
  914. Node: Sources
  915. Node: Typeface families
  916. 10674
  917. Node: Aliases
  918. 17148
  919. Node: Weight
  920. 19584
  921. Node: Variant
  922. 20141
  923. Node: Width
  924. 22430
  925. Node: Naming virtual fonts
  926. 23364
  927. Node: Examples
  928. 25484
  929. Node: Univers
  930. 25812
  931. Node: Standard PostScript fonts
  932. 27038
  933. Node: Long names
  934. 28400
  935. Node: Name mapping file
  936. 28911
  937. Node: Long naming scheme
  938. 30393
  939. End Tag Table
  940.